home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Complementary Applications 2004 February / SGI IRIX 6.5 Complementary Applications 2004 February.iso / relnotes / tooltalk_dev / ch3.z / ch3
Encoding:
Text File  |  2004-01-09  |  8.7 KB  |  199 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        3.  _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
  9.  
  10.        This chapter describes the known problems with the 1.4
  11.        version of ToolTalk.
  12.  
  13.           +o The Object Types (otypes) and the related ToolTalk
  14.             enhanced shell commands (_t_t_c_o_p_y, _t_t_m_v, etc.) should be
  15.             used for prototyping systems only.
  16.  
  17.           +o If you see the message:
  18.  
  19.             WWWWaaaarrrrnnnniiiinnnngggg:::: ccccoooouuuullllddddnnnn''''tttt aaaaccccqqqquuuuiiiirrrreeee XXXX sssseeeelllleeeeccccttttiiiioooonnnn
  20.  
  21.             it is possible that ToolTalk has started two
  22.             ttsessions.  The older of these sessions is not active.
  23.             You can kill the inactive session with the IRIX _k_i_l_l
  24.             command.
  25.  
  26.           +o If the default ttsession is killed, it leaves a
  27.             property on the X root window defining that session.
  28.             To locate the property, type:
  29.  
  30.             xxxxpppprrrroooopppp ----rrrrooooooootttt |||| ffffggggrrrreeeepppp ____SSSSUUUUNNNN____TTTTTTTT____SSSSEEEESSSSSSSSIIIIOOOONNNN
  31.  
  32.             Or, if you are running in a ClearCase _v_i_e_w, type:
  33.  
  34.             xxxxpppprrrroooopppp ----rrrrooooooootttt |||| ffffggggrrrreeeepppp ____SSSSGGGGIIII____TTTTTTTT____SSSSEEEESSSSSSSSIIIIOOOONNNN____<_v_i_e_w__n_a_m_e>
  35.  
  36.             To remove the property, type:
  37.  
  38.             xxxxpppprrrroooopppp ----rrrrooooooootttt ----rrrreeeemmmmoooovvvveeee <_p_r_o_p_e_r_t_y__n_a_m_e>
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.           +o If you have a ptype defined, but the program that is
  75.             autostarted on behalf of that ptype does not declare
  76.             itself to be that ptype, ToolTalk continues to start
  77.             the same program.  If this happens, kill the _t_t_s_e_s_s_i_o_n
  78.             process and the many instances of the autostarted
  79.             program, and fix your program to declare itself
  80.             properly.  For example, in the example program
  81.             _t_t__s_g_i__s_e_r_v_i_c_e, tt_ptype_declare is called before
  82.             tt_session_join.  This also points out the importance
  83.             of declaring the ptype _b_e_f_o_r_e joining the session.
  84.  
  85.           +o By default, ToolTalk tries to connect to the X display
  86.             defined by the DISPLAY environment variable to
  87.             determine what ttsession to join.  The call to
  88.             XOpenDisplay (which connects to the X display) can fail
  89.             in several ways:
  90.  
  91.                - If DISPLAY is set to a machine that is running
  92.                  _P_a_n_d_o_r_a, the Silicon Graphics (SGI) login, the SGI
  93.                  _X_l_i_b prints out the following warning:
  94.  
  95.                  XXXXlllliiiibbbb:::: ccccoooonnnnnnnneeeeccccttttiiiioooonnnn ttttoooo """"<<<<hhhhoooossssttttnnnnaaaammmmeeee>>>>::::0000....0000"""" rrrreeeeffffuuuusssseeeedddd bbbbyyyy sssseeeerrrrvvvveeeerrrr
  96.                  XXXXlllliiiibbbb:::: CCCClllliiiieeeennnntttt iiiissss nnnnooootttt aaaauuuutttthhhhoooorrrriiiizzzzeeeedddd ttttoooo ccccoooonnnnnnnneeeecccctttt ttttoooo SSSSeeeerrrrvvvveeeerrrr
  97.  
  98.                  There is currently no way to suppress this
  99.                  warning.  Because you probably do not want to
  100.                  connect to a message server on this machine in
  101.                  this case, set your DISPLAY environment variable
  102.                  to the machine running the desired ttsession.
  103.  
  104.                - If DISPLAY is set to a machine that is running XDM
  105.                  (X Display Manager) as the login, a call to
  106.                  XOpenDisplay hangs and might eventually return
  107.                  with the following message:
  108.  
  109.                   XXXXIIIIOOOO:::: ffffaaaattttaaaallll IIIIOOOO eeeerrrrrrrroooorrrr 33332222 ((((BBBBrrrrooookkkkeeeennnn ppppiiiippppeeee)))) oooonnnn XXXX sssseeeerrrrvvvveeeerrrr
  110.                        """"((((nnnnuuuullllllll))))"""" aaaafffftttteeeerrrr 0000 rrrreeeeqqqquuuueeeessssttttssss ((((0000 kkkknnnnoooowwwwnnnn pppprrrroooocccceeeesssssssseeeedddd))))
  111.                        wwwwiiiitttthhhh 0000 eeeevvvveeeennnnttttssss rrrreeeemmmmaaaaiiiinnnniiiinnnngggg....  TTTThhhheeee ccccoooonnnnnnnneeeeccccttttiiiioooonnnn wwwwaaaassss
  112.                        pppprrrroooobbbbaaaabbbbllllyyyy bbbbrrrrooookkkkeeeennnn bbbbyyyy aaaa sssseeeerrrrvvvveeeerrrr sssshhhhuuuuttttddddoooowwwwnnnn oooorrrr KKKKiiiillllllllCCCClllliiiieeeennnntttt....
  113.  
  114.                  Once again, you can set DISPLAY to avoid this
  115.                  condition.  If you are programming to handle this
  116.                  condition, one solution for detection without
  117.                  hanging is to set a timer surrounding the call to
  118.                  tt_open (which calls XOpenDisplay).  You can do
  119.                  this by setting a signal handler for the SIGALRM
  120.                  signal, and setting the alarm for how long you
  121.                  will give XOpenDisplay to connect or fail.
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.                - A third possible failure is if the DISPLAY is set
  141.                  to a machine (server) that is not running the X
  142.                  server (Xsgi).  In this case, the call to
  143.                  XOpenDisplay returns nil but takes a long time.
  144.                  Again, it makes sense to set the DISPLAY
  145.                  appropriately.
  146.  
  147.           +o If two clients require the same ptype service, but have
  148.             joined different files, simultaneous autostart handles
  149.             both requests successfully, but the second client
  150.             receives a reply with state TT_FAILED. This happens
  151.             when both clients have scope=TT_FILE_IN_SESSION.
  152.  
  153.           +o SunSoft ToolTalk sets the SIGPIPE signal handler for
  154.             clients unconditionally to SIG_IGN. This overrides any
  155.             previous setting for this signal handler.  In SGI
  156.             ToolTalk, if the SIGPIPE signal handler of the client
  157.             is set to anything other than SIG_DFL (default), it is
  158.             left unchanged.  Set your signal handlers before
  159.             calling ToolTalk.
  160.  
  161.           +o Point-to-point notices that do not have a handler set
  162.             for them are ignored, instead of an error code being
  163.             returned from tt_message_send().  The workaround is to
  164.             always name your recipient (via
  165.             tt_message_handler_set()) when you send a point-to-
  166.             point (that is, TT_HANDLER) message. Because no error
  167.             message is returned if you do not, make sure always
  168.             name your recipient.
  169.  
  170.           +o If you create a message, then send it more than once,
  171.             subsequent sends are not reliable. This is not supposed
  172.             to work at all!  Do not send the same message more than
  173.             once; create a new message each time.
  174.  
  175.           +o When tt_close is called, more than just the default
  176.             proc ID is closed.  Other proc IDs obtained via earlier
  177.             tt_open calls cause the TT_ERR_PROCID error when they
  178.             are used.  The workaround is to call tt_open() right
  179.             after calling tt_close(). That creates a new proc ID
  180.             and causes it to be the default proc ID.  Then call
  181.             tt_default_procid_set() to set the default proc ID to
  182.             be one of your ``real'' proc IDs.  Note that this is
  183.             relevant only if you are juggling multiple proc IDs in
  184.             the same process, which is not the typical case.
  185.  
  186.           +o TT_ERR_OVERFLOW is not currently reported when
  187.             thousands of queued messages are sent and never
  188.             delivered.  The workaround is to make sure the receiver
  189.             proceeds normally by calling tt_message_receive.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.